The following specification relates to a modeling editor associated with development objects.
Computer programs or applications are typically developed in a development environment. A development environment typically includes one or more tools that assist a programmer in developing an application. Although a development environment can be an integrated development environment, such that the tools that make up the development environment are tightly coupled, a development environment can be broadly interpreted as including separate programs or tools that are not coupled together. Some development environments can include a combination of integrated and non-integrated tools.
Within a development environment, an application can be developed using various architectures. In general, an architecture specifies the types of development objects or components that can be used to build applications, as well as the relationships that can be used to connect those components. In a given architecture, development objects can be organized by any combination of relationships, including hierarchical relationships, grouping relationships, and the like. In an object-oriented architecture, for example, an application defined by an architecture can include a combination of various data objects and resources (i.e., development objects). In that example, relationships among the development objects can include a relationship indicating that one data object inherits characteristics from another data object.
Another example architecture is the model-view-controller (MVC) architecture. Applications built using the MVC architecture typically include three different types of components—models, which store data such as application data; views, which display information from one or more models; and controllers, which can relate views to models, for example, by receiving events (e.g., events raised by user interaction with one or more views) and invoking corresponding changes in one or more models. Models and controllers typically include computer program code. When changes occur in a model, the model can update its views. Data binding can be used for data transport between a view and its associated model or controller. For example, a table view (i.e., a table including cells that are organized in rows and columns) can be bound to a corresponding table in a model or controller. Such a binding indicates that the table is to serve as the data source for the table view, and consequently that the table view is to display data from the table. Continuing with this example, the table view can be replaced by another view, such as a graph view. If the graph view is bound to the same table, the graph view can display the data from the table without requiring any changes to the model or controller. In the MVC architecture, development objects can include models, views, controllers, and components that make up the models, views, and controllers. For example, application data in a model can be an example of a-component that is a development object.
To graphically model an application, such that a combination of abstract, graphical representations represent the components of the application and the relationships between those components, a developer typically uses a drawing tool, such as Microsoft Visio (available from Microsoft Corporation of Redmond, Wash.), that provides abstract representations and tools for manipulating and/or generating abstract representations. For example, a user of a drawing tool can choose to use a circle (i.e., an abstract representation) to represent a class (e.g., a class defined in the C++ programming language) of an application developed under an object-oriented architecture. The circle that represents a development object can include data from the development object. For example, a name of a class (i.e., data from a development object) can be entered in a text box that is part of the circle, and that name can be displayed in the center of the circle.
In addition to drawing tools, a developer can also use other graphical tools to generate graphical representations (e.g., Unified Modeling Language diagrams) from application code, or vice versa. For example, Rational Rose (available from International Business Machines Corporation, White Plains, N.Y.) is a tool with which a user can create and modify Unified Modeling Language diagrams without necessarily generating code. Thus, in Rational Rose, a binding between coding fragments and components of a Unified Modeling Language diagram (i.e., graphical representations) is not necessary. In Rational Rose, a diagram can be exported into a unified format (“.mdl” file) and the exported diagram can be used as input for many different code generating facilities.